# Maintainer: Daniel Sabogal <dsabogalcc@gmail.com>
pkgname=openmpi
pkgver=3.1.1
pkgrel=3
pkgdesc="Message passing library for high-performance computing"
url="https://www.open-mpi.org/"
# disable ppc64le until opal_fifo test can be fixed
arch="all"
license="custom" # BSD-based custom license
makedepends="perl gfortran hwloc-dev libevent-dev libgomp"
subpackages="$pkgname-dev:_dev $pkgname-doc"
source="https://www.open-mpi.org/software/ompi/v${pkgver%.*}/downloads/$pkgname-$pkgver.tar.bz2"
builddir="$srcdir/$pkgname-$pkgver"

build() {
	cd "$builddir"

	local disable_atomics=""
        case "$CARCH" in
		ppc64le) disable_atomics="--disable-builtin-atomics";;
	esac

	./configure \
		--prefix=/usr \
		--mandir=/usr/share/man \
		--sysconfdir=/etc/$pkgname \
		--enable-ipv6 \
		--with-threads=posix \
		--with-hwloc=/usr \
		$disable_atomics
	make
}

check() {
	make -C "$builddir" check
}

package() {
	make -C "$builddir" DESTDIR="$pkgdir" install
	install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}

_dev() {
	default_dev

	local bins="mpiCC mpic++ mpicc mpicxx mpif77 mpif90 mpifort
		ortecc opal_wrapper oshCC oshc++ oshcc oshcxx oshfort
		shmemCC shmemc++ shmemcc shmemcxx shmemfort"

	mkdir -p "$subpkgdir"/usr/bin
	local i; for i in $bins; do
		mv "$pkgdir"/usr/bin/$i "$subpkgdir"/usr/bin
	done
}

sha512sums="d0e16676727fdc69cbd732be8475ffe2a9142a2b69b41d51d1da30c245d4ad1912c26029a1305d4221781d2b8dfb89edbb84185fefc65b9070727ed85133f117  openmpi-3.1.1.tar.bz2"
